Fast geometry-based list-entry selection providing associated data retrieval for use in hand-held and other devices

ABSTRACT

A method for selecting an entry from a list of entries on an electronic device is described. The method includes a displaying at least a portion of a list of entries along with a plurality of distinct, non-overlapping groups of text characters, the groups displayed in a geometric pattern. Additional retrievable data can be associated with each entry and retrieved when that entry is selected. A group selection event selects a particular group of characters. A matching operation compares text characters of the selected group with those of each entry in the list. A smaller, modified list is created comprising entries comprising at least one text character of the selected group. At least a portion of the modified list is displayed, highlighting text characters matching text characters of the selected group. Group selection can result from user operation of geometrically associated keys, a touch sensitive display, or other directional input device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.11/965,098 which claims the benefit of U.S. Provisional Application Ser.No. 60/921,690, filed Apr. 4, 2007, and U.S. Provisional Application No.60/952,859, filed Jul. 30, 2007. The provisional applications areincorporated in their entirety herein.

COPYRIGHT & TRADEMARK NOTICES

A portion of the disclosure of this patent document may containmaterial, which is subject to copyright protection. Certain marksreferenced herein may be common law or registered trademarks of theapplicant, the assignee or third parties affiliated or unaffiliated withthe applicant or the assignee. Use of these marks is for providing anenabling disclosure by way of example and shall not be construed toexclusively limit the scope of the disclosed subject matter to materialassociated with such marks.

BACKGROUND OF THE INVENTION

1. Field of Art

The disclosure generally relates to the field of computing device userinterfaces and more specifically, to enabling a user to select an entryfrom a list of entries.

2. Description of the Related Art

Portable electronic devices, also referred to as mobile devices, oftenhave a small screen with limited viewing area and a small keyboard witha limited number of keys. This makes it difficult to perform quicksearches and selections in lists such as an address book or song listcontaining more than a few items. For example, suppose that a user needsto find a name in an address book on a mobile phone to make a call. Thephone can present the user with a list of names that the user scrollsthrough with up and down keys until the desired name is reached. In somecases, keys may be available to jump up or down by several names atonce. Still, if the list contains more than a few screens of entries,scrolling through it to reach a desired name becomes impractical.

If the phone has a full keyboard, the user may try to enter the namewith the keyboard. However, the keyboard on a mobile device is small andlikely to be slow and difficult to use. Some devices have design wherethe keyboard is normally hidden and has to be slid out or opened to beused. This results in additional time to access the keyboard. In somedevices, a virtual keyboard can also be displayed on a touch screen.This keyboard is also likely to be small and difficult to use.Additionally, a stylus may be needed to use the virtual keyboard,resulting in time needed to take out and to put back the stylus.

It is possible to use a standard phone numeric keypad to search for andselect a name. A numeric key is associated with certain letters and auser accesses these letters by pressing the key repeatedly. For example,the “4” key is usually associated with the letters “G”, “H”, and “I,”and the user would access “G” by pressing the key once, “H” by pressingthe key twice, and “I” by pressing the key three times. This is referredto as the multi-tap method of letter selection.

One method of selecting a name from a list is Multi-Tap First, where auser selects the first letter of the name using the multi-tap method.Once the first letter is selected, the cursor is positioned to the firstentry starting with this letter, and the user then scrolls down to thedesired entry. Another method is Multi-Tap Match, where a user can typethe first several letters of a name using the multi-tap method. As theuser types each new letter, the cursor moves to the first name thatmatches the typed prefix. At some point, the user can choose to enter ascrolling mode where the user then scrolls down to the desired name.However, these methods based on multi-tap require many button pressesand require the user to differentiate between eight or more keys.

What is needed is an efficient and easy to use method for selecting anentry from a list of entries on an electronic device.

SUMMARY OF THE INVENTION

Features and advantages of the invention will be set forth in thedescription which follows, and in part will be apparent from thedescription, or may be learned by practice of the invention. Theobjectives and other advantages of the invention will be realized andattained by the structure particularly pointed out in the writtendescription and claims hereof as well as the appended drawings.

Disclosed is a system (and/or method) for selecting an entry from a listof entries on an electronic device is disclosed. The system isconfigured to display a plurality of banks to a user and to receive abank selection event from the user for selecting a bank containing a setof characters. The user creates a bank selection event through an inputdevice such as a navigation device or touch screen. The set ofcharacters is appended to a prefix that is used to determine a currentresult list containing entries that match the prefix. The list ofentries is reduced to the current result list and displayed to the userwith the portions of the entries matching the prefix highlighted. Afterthe list of entries is reduced to a desired size, the user enters ascrolling mode where the user scrolls through the list of entries andselects an entry. A predetermined action is then performed on theselected entry.

The disclosed system provides several advantages. A user can select anentry from a list of entries easily and efficiently. Entries can beselected by providing a relatively small number user inputs to an inputdevice that fits in a small area and has a simple user interface. Theuser is not required to look at the display of the device when selectingan entry and can operate the device using one hand.

These and other embodiments will also become readily apparent to thoseskilled in the art from the following detailed description of theembodiments having reference to the attached figures, the invention notbeing limited to any particular embodiment disclosed.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosed embodiments have other advantages and features which willbe more readily apparent from the detailed description, the appendedclaims, and the accompanying figures (or drawings). A brief introductionof the figures is below.

FIG. 1 illustrates a system for enabling a user to select an entry froma list of entries on an electronic device.

FIG. 2 illustrates a display screen on an electronic device forselecting an entry from a list.

FIG. 3 illustrates the display screen of FIG. 2 after a bank selectionevent.

FIG. 4 illustrates the display screen of FIG. 3 after another bankselection.

FIG. 5 illustrates the display screen of FIG. 4 after another bankselection event.

FIG. 6 illustrates the display screen of FIG. 5 after another bankselection event.

FIG. 7 illustrates the prefix that is matched to create the currentresult list displayed in FIG. 5.

FIG. 8 illustrates a portion of a display screen with a current resultlist that can be reduced further through multiple word selection.

FIG. 9 illustrates the display screen of FIG. 4 after a scrolling modeentry event.

FIG. 10 is a flowchart showing the steps for selecting an entry from alist, in one embodiment.

FIG. 11 illustrates a mobile device with a navigation panel.

FIG. 12 illustrates different navigation panels from various mobiledevices.

FIG. 13 illustrates a mapping from a range of trackball inputs todiscrete directional events.

FIG. 14 illustrates a configuration with six banks placed around a listdisplay area.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to several embodiments, examples ofwhich are illustrated in the accompanying figures (FIGS.). It is notedthat wherever practicable similar or like reference numbers may be usedin the figures and may indicate similar or like functionality. Thefigures depict embodiments of the disclosed system (or method) forpurposes of illustration only. One skilled in the art will readilyrecognize from the following description that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles described herein.

FIG. 1 illustrates a system 100 for enabling a user to select an entryfrom a list of entries on an electronic device. Examples of electronicdevices include computers, cable television boxes, global positioningsystem (GPS) devices, mobile phones, portable media players, andhandheld computers. The system is comprised of various modules which canrun on the electronic device. The electronic device includes aprocessor, memory, storage, and other hardware and software to run themodules of the system 100.

The list from which a user selects an entry can be, for example, a listof names of persons, a list of song names, a list of file names, or alist of words. The user generally selects an entry for the purpose ofperforming some action relating to that entry. For example, the user mayselect a name from a list to call a phone number associated with thename or to retrieve an address associated with the name. In anotherexample, the user may select a word from a list containing severalcommonly used words to insert that word into an e-mail the user iscomposing.

Each list entry is a string of characters, where the characters can beletters from any alphabetic system, numbers, or any other symbols. Thecharacters can be encoded in various ways such as ASCII or Unicode. Inthe description that follows, the list in Appendix A is used toillustrate the selection of an entry from a list and is referred to asthe Example List. The Example List contains names of persons, where thenames are comprised mostly of letters. In the description that follows,any reference to names composed of letters is understood to equallyapply to general strings of characters.

List data is provided by the data entry module 114. List data includesthe character string entries described above and data associated witheach entry. For example, an entry can be the name of a person and theassociated data can be the person's phone number and address. Theassociated data is used to perform an action when the entry is selected,such as calling the phone number associated with a selected name. Listdata can be received from a variety of sources. The data may reside onlocal storage of the electronic device that is loaded into memory by thedata entry module. The data may be downloaded from the Internet oranother device. The data can be created from Caller ID information ofreceived phone calls. The data can also be manually entered by a user,for example through a keyboard on the electronic device.

The user interface module 102 provides a user interface for a user toselect an entry from a list. The user interface module sends graphicscommands to a display 112 that provides visual information to the userduring the entry selection process. An example of a display is a liquidcrystal display (LCD) screen on a electronic device.

The user interface module accepts input commands from a user inputdevice 118. The user input device can be can be a touchpad, joystick, a4-way or 5-way navigation control, a touch screen, or any of a varietyof input methods provided by the electronic device. The device inputcommands are processed by a user input module 116 before being sent tothe user interface module. The user input module produces eventsunderstood by the user interface module based on the device inputcommands. Some of the events include bank selection events, a scrollingmode entry event, cursor up and down events, an entry selection event, abackspace event, and a reset event. These events are described furtherbelow.

Once a user has selected an entry via the user interface module, theentry is sent to the entry action module 120. The entry action moduleperforms an appropriate action on the selected entry, possibly usingdata associated with the entry. For example, as mentioned above, theentry action module may dial a phone number associated with a selectedentry.

Entry Selection User Interface

FIG. 2 illustrates a portion of a display screen 112 of an electronicdevice. The contents of the display screen are controlled by graphicscommands from the user interface module 102. The list display region 204contains entries 206 from the current result list 104. The currentresult list contains the list entries that are currently available forselection. Initially, the user interface module receives the completelist from the data entry module 114 and stores this list as the currentresult list. When the user interface module receives bank selectionevents, described below, various entries are ruled out as candidates forselection and are removed from the current result list, shortening thecurrent result list. When the entry selection process is restarted, thecurrent result list 104 is reset to the complete list.

The list display region 204 can display the entries 206 of the currentresult list 104 in any order desired. The list display region may not beable to display all of the entries of the current result list. Thoughthe current result list in FIG. 2 contains 96 entries (see Appendix A),the list display region 204 shows only ten entries due to spaceconstraints. A variety of options are possible for choosing whichentries to show in the list display region 204. In one embodiment, thelist is sorted as desired and the first ten sorted entries are chosen tobe displayed.

The user interface for entry selection occurs in two modes: bankselection mode and scrolling mode. At the start of the entry selectionprocess, the user interface is in bank selection mode. The bankselection mode module 108 handles the user interface in this mode. Thebank selection module 108 receives events from the user input module 116(passed through the user interface module 102) that can cause the numberof entries in the current result list 104 to be reduced. When currentresult list has been reduced to a manageable number of entries, such aswhen all or most of the current result list can fit on a single screen204, the user can provide input that causes a scrolling mode entry eventto be sent to the user interface module.

When a scrolling mode entry event is received, the user interface entersscrolling mode, controlled by the scrolling mode module 110. Inscrolling mode, the user can navigate through the list display region204 and select a particular entry by providing input that causes certainevents to be sent to the scrolling mode module 110 (through the userinterface module 102). Further description of bank selection mode andscrolling mode is given below.

The list display region 204 is surrounded by letter banks 202. Thesebanks contain groups of characters that can appear in the list entries.In the example display shown in FIG. 2, the banks include all the letterfrom the English alphabet. The banks do not need to include all symbolsin the list and a single symbol in a bank can map to multiple symbols inthe list. For example, spaces and periods appear in the list entries butnot in the banks. Also, for example, the symbol E in the upper bank mapsto both uppercase E and lowercase e in the list entries.

In FIG. 2, the example configuration illustrates four banks displayed atthe four edges of the list display area 204. The QWERTYUIOP bank isreferred to as the upper bank, the ASDFG bank is referred to as the leftbank, the HJKL bank is referred to as the right bank, and the ZXCVBNMbank is referred to as the lower bank. These banks are selected whenbank selection events are received by the bank selection mode module108. A bank selection event is also referred to as a directional eventbecause a bank can be specified by its location relative to the listdisplay area 204 (e.g., upper bank, left bank). The user of directionalbanks enables a user to produce bank selection events by entering simpleinputs on an electronic device. There are four banks as opposed totwenty six letters, making bank selection simpler than individual letterselection with a keyboard. Input mechanisms are further described in theuser input module 116 description below.

Before a first bank is selected, the current result list 104 displayedin the list display area 204 is the complete list provided by the dataentry module 114. The first received bank selection event narrows thecurrent result list to those entries containing one of the letters inthe selected bank at certain predefined positions. These positions canbe, for example, the start of the first, middle, or last name of theentry. In one embodiment, there is no position restriction, so that oneof the letters from the selected bank can appear anywhere in the entry,such as in the middle of a last name.

In FIG. 2 and the figures that follow, the first selected bank mustinclude a letter that is the first letter of the first, middle, or lastname of a particular entry for that entry to remain in the currentresult list. For example, if the right bank is selected, the currentresult list is narrowed down to those items with first, middle, or lastnames beginning with H, J, K, or L. As another example, “AgathaChristie” will remain in the current result list after the first bankselection if the left bank (containing ‘A’) or the lower bank(containing ‘C’) is chosen.

Some letters in the banks 202 may be highlighted 214. A highlightedletter may be shown as bolder or a different color than non-highlightedletters. In one embodiment, highlighted letters are displayed normallywhile non-highlighted letters are “grayed out.” A symbol is highlightedif there are any list items in the current candidate list that wouldmatch that particular letter if the bank containing the letter wereselected. In FIG. 2, all letters are highlighted except for “Q” and “X.”This is because all other letters in the banks correspond to the firstletter of at least one first, middle, or last name from the ExampleList. The highlighted letters show the user which letters from a bankcan be possible matches if that bank is selected next.

The display area 112 also includes on-screen buttons 210 and 212 thatprovide additional functionality to users. These buttons can be selectedby user inputs causing various events to be sent from the user inputmodule 116 to the user interface module 102. The button 210 titled“Options” can open a menu enabling the user to set certain options forthe display 112 such the highlighting colors or list sortingpreferences. The user input module can send various configuration eventsto the user interface module. The back button 212 can undo the mostrecent event received, such as a bank selection event. The user inputmodule can send an undo event to the user interface module.

Suppose that the user wants to find someone in the Example List whosename (first, last, or middle) is “O'Connor”. The user, when selecting afirst bank, would select the upper bank since that contains ‘O’, thefirst letter of the name. After receiving the first bank selection eventfor the upper bank, the display illustrated in FIG. 3 is shown to theuser. The current result list 104 has been narrowed to those items thathave first, middle, or last names starting with Q, W, E, R, T, Y, U, I,O, or P, since the upper bank was selected. Certain letters in theentries 206 have been highlighted 316 to show the matches with the firstupper bank selection. In some cases, an entry may have multiple matches.For example, “E. B. White” matches twice because the first name startswith E and the last name starts with W, both from the upper bank. Insuch cases, both letters are highlighted.

After the first bank selection, the user interface can remain in bankselection mode or can enter scrolling mode. Assuming that the userchooses to remain in bank selection mode, the user again provides aninput producing a bank selection event. For this second bank selection,the user is choosing a bank containing a letter following a previouslymatched letter in the entry the user wants to select. For example, tomatch “Alice Walker” in the second bank selection, the user would needto select the left bank, since it contains ‘A’, which would match the‘a’ following the ‘W’ matched in the first bank selection. Symbolsappearing in the list items but not in the banks are ignored. Forexample, for the item “E. B. White”, the next possible matching symbolafter ‘E’ is ‘B’, not the period.

The bank letters that are highlighted 214 in FIG. 3 are different thanthose highlighted 214 in FIG. 2. This is because the highlighted bankletters now correspond to possible matches in the position following thepreviously matched position. For example, ‘H’ matches the ‘h’ followingthe previously matched ‘W’ in ‘Edith Wharton’ and as a result ‘H’ ishighlighted in the bank ('H′ also has matches in other list items).

The user searching for “O'Connor” would select the lower bank containing‘C’ for the second bank selection. This results in the display shown inFIG. 4. The current result list is narrowed further to those entriesthat match after the second bank selection. Matching list items mustcontain a letter from the first selected bank followed by a letter fromthe second selected bank. The highlighting in the display list area andhighlighting in the banks illustrated in FIG. 4 provide the user withsimilar indications to those described in FIG. 3. Subsequent bankselections operate similarly, causing the result list to be shortenedand the highlighting of the banks and the current result list to change.

The user may want to further narrow the result list by selecting anotherbank. To continue the search for “O'Connor” the user would select theupper bank containing ‘O’ as the third bank selection. The result ofthis selection is illustrated in FIG. 5. The user would then select thebottom bank containing ‘N’. The result of this fourth selection isillustrated in FIG. 6. At this point, the current result list has beennarrowed down to the single desired entry. In most cases, the user wouldchoose to exit bank selection mode and enter scrolling mode beforereaching the screen illustrated in FIG. 6. For example, the user maychoose to enter scrolling mode after reaching the screen illustrated inFIG. 4 (after two bank selections), since the current result list atthat point contains only six names that the user can easily scrollthrough.

In bank selection mode, the current result list 104 is narrowed throughprefix matching. Each bank selection event results in the selected bankbeing appended to the prefix 106 that is matched with the entries of thecurrent result list. A prefix matches an entry of the current resultlist if the banks in the prefix match adjacent letters in the entry(subject to restrictions on the position of the first matching letterdescribed above). For example, after the third bank selection event, theprefix is three banks long and therefore must match three adjacentletters in an entry. Since each bank contains multiple letters, thereare multiple letter sequences that will match a given prefix of banks.

FIG. 7 illustrates the prefix 106 that is matched to create the currentresult list displayed in FIG. 5. As described above, FIG. 5 is reachedafter selecting the left bank, the lower bank, and then the left bankagain. The letters from these banks are shown in positions 1, 2, and 3of the prefix in FIG. 7. For an entry to match the prefix in FIG. 7, itmust contain one letter from position 1 followed by one letter fromposition 2 followed by one letter from position 3. All of the displayedentries in FIG. 5 match this prefix.

In the illustrated embodiment, the letters in the entries matching theprefix must be consecutive (excluding non-letter characters) but do notneed to be contained in the same name within the entry. This is referredto as permitting multiple word selection. For example, in FIG. 5, “E. B.White” is part of the current result list because the consecutiveletters ‘E’, ‘B’, and ‘W’ match the first three bank selections (i.e.,the prefix). Even though the ‘E’ is from the first name, the ‘B’ is fromthe middle name, and the ‘W’ is from the last name, the match is notaffected. By allowing multiple word selection, the user can continue tonarrow down the current result list by bank selections even when the endof a word is reached.

Another example where multiple word selection is useful is shown in FIG.8, where the current result list after four bank selections includesseveral persons with the same first name. If multiple word selectionwere not permitted, the user could not further narrow the current resultlist through further bank selection events, and would instead need toenter scrolling mode to select an entry.

Multiple word selection can also be permitted where the prefix hascompletely matched the (same) last names of several entries. After thelast name is matched, the prefix matching wraps around to the firstname. This wrapping may be useful, for example, if a sequence of bankselections have matched several persons with the same last name and theuser wants to continue making bank selections to further reduce thecurrent result list based on the first name.

As mentioned above, the user can enter scrolling mode at any time withan input that sends a scrolling mode entry event to the user interfacemodule. Usually, the user will do this when the current result list hasbeen reduced to a few entries that can be easily navigated. FIG. 9illustrates a display 112 in scrolling mode entered after the bankselection resulting in FIG. 4. In scrolling mode, one of the entries inthe current result list is highlighted with a cursor 902. In oneembodiment, the cursor is initially at the first entry when scrollingmode is entered. Alternatively, the cursor is initially placed in themiddle of the current result list.

The cursor 902 can be moved from an one item to an adjacent item throughcursor up and cursor down events generated by user inputs. When thecursor has been moved to the desired entry, the user can create an entryselection event to select the entry and send the entry to the entryaction module 120. As described above, the entry action module carriesout a desired action on the entry, such as dialing a phone number. Ifthe display 112 is touch sensitive, the user can produce an entryselection event by directly touching the entry on the display instead ofproviding inputs to move the cursor up and down. In one embodiment, whenthe user interface enters scrolling mode with the current result listalready narrowed to a single entry, that entry is automaticallyselected.

When in scrolling mode, the current result list may contain more entriesthan can be displayed in the list display area 204. The user can reachthe undisplayed items by moving the cursor down beyond the bottomdisplayed entry to scroll the display area to the undisplayed entry. Inone embodiment, the display 100 provides an indication to the user thatthere are more entries in the current result list than are shown in thelist display area so that the user knows to scroll down to display allentries (if desired). The user may also be able to generate page up orpage down events to move through a long list of entries more rapidly.

FIG. 10 is a flowchart showing the steps for selecting an entry from alist, in one embodiment. The user interface module 102 displays 1002 thelist from which the user is to choose an entry. The user interface is inbank selection mode. The user interface module receives 1004 an eventgenerated by the user. If the event is a bank selection event, theselected bank is appended 1005 to the prefix 106. A prefix match is thenperformed 1006 on the current result list entries. The current resultlist is reduced 1008 to those entries matching the prefix and this listis displayed 1010 to the user in the list display area 204. Thehighlighting of the banks 202 and list entries 206 is updated 1012 basedon the new prefix and current result list. As the user continues togenerate bank selection events, the prefix becomes longer and matchesfewer entries resulting in a shorter current result list.

After making zero or more bank selections, the user generates ascrolling mode entry event. Upon entering scrolling mode, a cursor isdisplayed 1014 on an entry in the current result list. Scrolling eventssuch as cursor up or cursor down are received 1016 from the user inputmodule to move the cursor to a desired entry. An entry selection eventis received 1018 when the user has reached the desired entry and wishesto select that entry. A predefined appropriate action is then performed1020 on the desired entry by the entry action module 120.

User Input

As described above, the user provides input to the electronic devicethrough a user input device 118. Generally the user input device is partof the electronic device, such as a keypad or navigation panel on theelectronic device. The user input device sends device input commands tothe user input module 116. The user input module interprets these inputcommands and creates events that can be understood by the user interfacemodule 102. The user input module then sends these events to the userinterface module.

One set of events are the bank selection events, also referred to asdirectional events because each bank is associated with a particulardirection. In one embodiment, the directional events are created using anavigation panel commonly found on mobile devices. FIG. 11 illustrates amobile device with a navigation panel. The mobile device 1100 has adisplay 112, a navigation panel 1108, and a keypad 1110. The navigationpanel 1108 has four directional buttons 1102 that can be pressed toselect banks. For example, a user presses button 1102D to select theleft bank in FIG. 2.

Similar input devices capable of producing a directional input can beused. Several such input devices from various mobile devices are shownin FIG. 12. The input devices can also be trackballs or joysticks. Theuser can press buttons on the edges of a mobile device 1100 or applypressure to the edges of the mobile device to generate bank selectionevents. If the display 112 is touch sensitive, the user can directlytouch the displayed bank with a finger or stylus to select it.

Various gestures made by a user can also be analyzed by the user inputmodule 116 to determine an appropriate directional event to create. Auser can make a stroke on a touchpad or touch sensitive screen, and thedirection of the stroke can be determined. For example, a stroke to theright can select the right bank. Since gestures can be made rapidly byusers, the bank selection events can be rapidly generated in this way.

Navigation panel 1108 provides four buttons that produce discrete inputsthat the user input module 116 translates into directional events.However, other devices such as a trackball may provide a horizontalmagnitude of navigational motion, Δx, and a vertical magnitude ofnavigational motion, Δy. A negative Δx corresponds to a move left, apositive Δx corresponds to a move right, a negative Δy corresponds to amove downwards, and a positive Δy corresponds to a move upwards. Thesemagnitudes can be converted into directional events by the user inputmodule as follows:

-   -   right: if |Δx|>|Δy| and Δx>0,    -   left: if |Δx|>|Δy| and Δx≧0,    -   up: if |Δx|<|Δy| and Δx>0,    -   down: if |Δx|≦|Δy| and Δx≦0,

Some trackball devices are very sensitive and report even very slightmovements. Jitter elimination can be used to prevent such slightmovements from producing a bank selection event. One way to implementjitter elimination is to ignore trackball movements with amplitudes lessthan certain values. For example, trackball events are ignored if√{square root over (Δx²+Δy²)} is less than some pre-defined small value.

FIG. 13 illustrates a mapping from a range of trackball inputs todirectional events. The horizontal and vertical axes represent Δx and Δyrespectively. Movements in region 1340 select the upper bank, movementsin region 1342 select the right bank, movements in region 1344 selectthe lower bank, and movements in region 1346 select the left bank. Theimplementation of jitter elimination results in movements in region 1348being ignored.

Bank selection events can also be produced by inputs to a keyboard orsimilar device. In an example four-bank configuration, certain keys onthe keyboard can be assigned to each directional bank. For example,pressing ‘A’ can select the left bank, ‘L’ can select the right bank,and so on. The arrow keys on the keyboard can also be used to specifydirectional banks. Multiple keys can be assigned to a bank, such asassigning the ‘A’, ‘S’, ‘D’, ‘F’, and ‘G’ keys to the left bank. Notethat the letter keys that are pressed to create a bank selection eventcan be different than the letters in the bank.

On mobile phones equipped with a standard phone numeric keyboard,numbered keys can generate bank selection events that result in theselection of additional banks that do not appear on the display 112. Forexample, key 3 is associated with the letters ‘G’, ‘H’, and ‘J’, andpressing this key results in the selection of a bank containing theletters G, H, and J, even if there are other banks displayed on thedisplay containing those letters. On a full keyboard, the individualkeys can be pressed to generate events to select undisplayed bankscontaining only a single letter corresponding to the key. Keys on anumeric keypad or keyboard can be used to select additional banks incombination with directional keys that are used to select the banksshown on the display. For example, a first bank selection can be for adisplayed directional bank, and the next bank selection can be for athree-letter bank associated with a key of a numeric keypad.

In addition to the bank selection events, there are various other eventsthat the user creates. There is a scrolling mode entry event and aselection event in scrolling mode. These events can be created by theuser pressing the center button of a navigation panel, such as button1104 in FIG. 11. In scrolling mode there are also cursor up and cursordown events to move the cursor. These events can be generated throughthe directional buttons 1102A and 1102C. Various other methods apparentto those skilled in the art can be used to generate these events from avariety of input devices.

Optional events such as backspace or reset can also be part of the userinterface. A backspace event (also referred to as an undo event) canundo the previous event. For example, a backspace event can undo themost recent bank selection event and increase the size of the currentresult list. The reset event can take the user back to the initialselection screen illustrated in FIG. 2. The user can generate theseevents by pressing buttons on the electronic device that have beenassigned to the events. These events can also be generated by buttons ormenus displayed on the screen 112, such as the “Back” button 212 in FIG.2. These on-screen buttons can be selected by standard methods such as auser pressing menu keys provided on the device.

The event generation methods described above provide several advantages.The user can generate all events necessary to select an entry from alist with one hand using most input devices, including those describedabove. The input device can also be small and can fit on a mobiledevice. In fact most mobile devices include a navigation panel that canbe used for selecting directional banks. The experienced user who isfamiliar with the input device and the bank configuration does not needto look at the screen 112 or input device to make bank selections andselect an entry.

Bank Configuration

The banks 202 provided for user selection can have variousconfigurations. In FIG. 2, there are four banks displayed at the fouredges of the list display area 204. The banks contain letters groupedbased on regions of the standard QWERTY keyboard (consecutive keys ofQ-W-E-R-T-Y in a row). The upper bank contains letters corresponding tothe top row of the keyboard, the left and right banks contain letterscorresponding to the left and right portions of the middle row of thekeyboard, and the lower bank contains letters corresponding to thebottom row of the keyboard.

An alternative configuration is for the letters in the banks to begrouped alphabetically, where the upper bank contains ‘ABCDEFG’, leftbank contains ‘HIJKLMN’, the right bank contains ‘OPQRSTU’, and thelower bank contains ‘VWXYZ’. Other configurations include groupingsbased on the AZERTY keyboard, Dvorak keyboard, double-byte characters,and the like.

Letters may be grouped into banks in various other ways. The same lettermay also be contained in more than one bank. The banks may containnumbers or other symbols. The number of banks may also vary. FIG. 13illustrates a configuration with six banks 202 placed around a listdisplay area 204. Such a bank configuration may work well with asix-direction input device

Several factors can be considered when determining bank configuration.Dividing the letters among a larger number of banks allows the user tospecify a smaller set of letters when choosing a bank, generallyresulting in a faster narrowing of the current result list. However,bank selection event generation becomes more complex with more banksbecause a wider range of inputs are produced by the user.

For a given number of banks, there are many options for grouping theletters into particular banks. It may be desirable to configure banks sothat the user can more easily remember the letters contained in a bank.The QWERTY keyboard-based bank configuration described above may be moreeasily remembered by users familiar with such a keyboard. It is notnecessary for users to memorize the letters contained in the banks sincethe banks are displayed on display 112. However, users who do memorizethe bank configuration may achieve faster bank selection speeds byavoiding having to visually scan the banks.

Banks may also be configured to minimize the number of events issued bythe user to select items. As described above, an event is required foreach bank selection, and additional events can be required to enterscrolling mode, to move the cursor 902 in scrolling mode, and to selectthe desired entry in scrolling mode. The letters may be distributedamong the banks to minimize the number of such events needed to selectan item on average. Generally this can be achieved by distributing inmultiple banks the frequently occurring letters from the list entriesinstead of having many frequently occurring letters in a single bank.However, the optimal strategy for distributing letters among the banksdepends on the letter compositions of the list entries and on thefrequency of access to each list entry. The bank configurations can varydynamically based on algorithms implemented in the electronic devicethat determine optimal bank configurations based on the list entries andusage patterns.

Some portions of above description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame

Some embodiments may be described using the expression “coupled” and“connected” along with their derivatives. It should be understood thatthese terms are not intended as synonyms for each other. For example,some embodiments may be described using the term “connected” to indicatethat two or more elements are in direct physical or electrical contactwith each other. In another example, some embodiments may be describedusing the term “coupled” to indicate that two or more elements are indirect physical or electrical contact. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other. Theembodiments are not limited in this context.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the invention. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs for listentry selection. Thus, while particular embodiments and applicationshave been illustrated and described, it is to be understood that thepresent invention is not limited to the precise construction andcomponents disclosed herein and that various modifications, changes andvariations which will be apparent to those skilled in the art may bemade in the arrangement, operation and details of the method andapparatus of the present disclosure disclosed herein without departingfrom the spirit and scope of the invention as defined in the appendedclaims.

APPENDIX A

Listed below are the names in the Example List used in the embodimentspresented above.

Agatha Christie Albert Camus Aldous Huxley Alex Haley Alice Walker AllenGinsberg Amy Tan Anais Nin Arthur C. Clarke Arthur Conan Doyle ArthurMiller Ayn Rand Barbara Kingsolver Bernard Malamud C. S. Lewis CharlesBukowski D. H. Lawrence Danielle Steel Dorothy Parker Dr. Seuss E. B.White E. M. Forster Edgar Rice Burroughs Edith Wharton Edward AlbeeErnest Hemingway Ernie Pyle Eudora Welty Eugene O'Neill F. ScottFitzgerald Flannery O'Connor Gabriel Garcia Marquez George Orwell GrahamGreene Harper Lee Herman Wouk Hunter S. Thompson Isaac Asimov IsabelAllende J. D. Salinger J. R. R. Tolkien Jack Kerouac Jack London JamesBaldwin James Joyce James Michener John Cheever John Grisham John IrvingJohn McPhee John Steinbeck John Updike Jorge Luis Borges Joseph ConradJudy Blume Kurt Vonnegut Langston Hughes Laura Ingalls Wilder MarcelProust Margaret Atwood Maya Angelou Milan Kundera Octavia E. ButlerPablo Neruda Ralph Ellison Ray Bradbury Raymond Carver Roald Dahl RobertFrost Robert Heinlein Rod Serling Saul Bellow Shel Silverstein SinclairLewis Stephen King Sylvia Plath T. S. Eliot Tennessee Williams ThomasMann Thomas Pynchon Tom Robbins Tom Wolfe Toni Morrison Truman CapoteUpton Sinclair Ursula K. Le Guin Virginia Woolf Vladimir Nabokov W.Somerset Maugham W. H. Auden Willa Cather William Faulkner WilliamGolding William Styron William Butler Yeats Winston Churchill Zora NealeHurston

1. A method for selecting an entry from a list of entries on anelectronic device, the method comprising: displaying at least a portionof a list of a plurality of entries on the screen of an electronicdevice, the list and the entries comprising at least text characters,wherein some entries comprised by the list are currently displayed;displaying on the screen a plurality of distinct, non-overlapping groupsof a plurality of at least text characters, the displayed groupsarranged in a geometric pattern; receiving a group selection event forselecting a particular group from the plurality of groups; performing amatching operation, the matching operation comparing at least textcharacters of the selected group to the at least text characters of eachentry in the list; producing a modified list from the list by removingentries that do not comprise at least one of the at least textcharacters of the selected group, the modified list thus comprisingentries that do comprise at least one of the at least text characters ofthe selected group; displaying at least a portion of the modified liston the screen of the electronic device, and highlighting at least onetext character in each entry of the modified list of entries, thehighlighted characters being those matching at least one of the at leasttext characters of the selected group.
 2. The device of claim 1 whereinadditional retrievable data is uniquely associated with at least aplurality of the entries.
 3. The device of claim 1 wherein at least oneentry comprised by the list is not displayed prior to receiving thegroup selection event.
 4. The device of claim 1 wherein at least oneentry comprised by the list is not displayed after receiving the groupselection event.
 5. The device of claim 1 wherein the method is usedagain, the modified list being used as the list in the second use of themethod, the second use of the method producing a new modified listdiffering from the modified list resulting from the first use of themethod.
 6. The device of claim 1 wherein the method is used iterativelyto sequentially reduce the number of entries that can be displayed. 7.The device of claim 1 wherein one of the displayed entries is selectedby an entry selection event.
 8. The device of claim 7 wherein additionalretrievable data is retrieved when an entry is selected.
 9. The deviceof claim 7 wherein the selection event is automatically generated as aresult of there being only one entry in the modified list.
 10. Thedevice of claim 1 wherein at least a plurality of the entries representthe name of a person.
 11. The device of claim 1 wherein at least aplurality of the entries represent a word.
 12. The device of claim 1wherein at least a plurality of the entries represent a song title. 13.The device of claim 1 wherein at least a plurality of the entriesrepresent a file name.
 14. The device of claim 1 wherein the particularentries from the list that are displayed can be changed responsive to ascrolling operation.
 15. The device of claim 1 wherein the groupselection event is produce by user operation of an associated key from aplurality of keys on the electronic device.
 16. The device of claim 1wherein a plurality of keys on the electronic device are associated withthe plurality of groups.
 17. The device of claim 1 wherein theelectronic device comprises a plurality of keys arranged in a geometricpattern that is associated with the geometric pattern of the displayedgroups.
 18. The device of claim 1 wherein the group selection eventresults from user operations of a directional input device.
 19. Thedevice of claim 17 wherein the directional input device is responsive totouch of a touch sensitive display.
 20. The device of claim 17 whereinthe directional input device comprises use of a touch sensitive display.